<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

</body>
<script>
    {
        // 类如何创建
        // 1
        // const Box = class{
        //
        // }
        // 2
        // class Box2{
        //
        // }
    }
    {
        // 2 实例属性和原型属性
        // class Box{
        //     a=1;// 实例属性
        //     constructor() {
        //         this.b = 2;// 实例属性
        //     }
        //     // 原型属性，类型是一个函数
        //     run(){
        //         console.log("run")
        //     }
        //     // 实例属性，类型是一个函数
        //     my = function(){
        //         console.log("my")
        //     }
        // }
        // Box.prototype.abc = 100;
        // const obj = new Box();
        // const obj2 = new Box();
        // console.log(obj.my === obj2.my);// true   1     false 2
        // console.log(obj.run === obj.run);// true 9 false 8

        // console.log(typeof Box);// 本质是函数 function
    }
    {
        // 3
        // class Box{
        //     constructor() {
        //         this.haha = "box"
        //     }
        // }
        // class Desk extends Box{
        //     constructor() {
        //         super();
        //         this.str = "my";
        //     }
        // }
        // const obj = new Desk();

    }
    {
        // class Box{
        //     constructor(a,b) {
        //         this.a = a;
        //         this.b = b;
        //     }
        // }
        // class Desk extends Box{
        //     // constructor(a,b) {
        //     //     super(a,b);
        //     // }
        // }
        // const obj = new Desk(1,2);
        // console.log(obj);// {a:1,b:2}   2    3
    }
    {
        class Box{
            static b = 2;
            static fn = function(){
                console.log("fn")
            }
        }
        Box.a = 1;// 静态属性
        // 静态方法
        Box.run = function(){
            console.log("run")
        }
        console.log(Box.a);
        Box.run();

        console.log(Box.b);// 2
        Box.fn();// fn
    }
    {
        class Box{

        }
        // 实例化 类 Box--- obj称为实例对象，实例对象下的属性称为实例属性
        const obj = new Box();
    }
</script>
</html>